Conversation
✅ Deploy Preview for cerulean-figolla-1f9435 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
dd737d9 to
16882c2
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8002 +/- ##
==========================================
- Coverage 73.54% 73.48% -0.06%
==========================================
Files 237 237
Lines 35631 35631
==========================================
- Hits 26204 26185 -19
- Misses 7566 7582 +16
- Partials 1861 1864 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
3a6461f to
b56a4b1
Compare
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
b56a4b1 to
e930544
Compare
|
Hi @zhaohuabing
Client IP SourceIn my opinion, this setting is redundant to [ClientIPDetectionSettings Envoy allows the different XFF configuration for HCM and GeoIP filter, I don't know the exact reason, but there might be use cases that they could be different? Huabing: One possible use case is that different routes may need different XFF settings (e.g., different source headers or different hop counts). That isn’t feasible with ClientTrafficPolicy today since it applies at the Gateway level, not per-route. Another concern with this approach is that it would generate XFF configuration for both the HCM and the GeoIP filter. That could have unintended side effects in cases where HCM-level XFF configuration isn’t desired. That said, I think consolidating this in one place in the control plane is a better UX and helps avoid misconfiguration. An optional XFF configuration in the SecurityPolicy should also be supported to allow route-level configuration. ref:
GeoIP Database sourceThe database source is an infrastructure responsibility, and I don't see that this information should be provided for each Huabing: Access rulesI think configuring access decision with geo location information as part of the This would ensure that the geo information population and the headers to match are entirely within the responsibility of the controller manager. Huabing: What do you think? Huabing:
That feels harder for users to understand and configure correctly. |
|
Hi @zhaohuabing, do you know if this a PR that could be shipped with v1.8.0 ? My team and I are currently benchmarking possible replacement of BTW, thank you very much for your work (you personnaly and Envoy/Gateway teams in general) on this project ! |
|
@funkluk replied to your comment inline(text in italics) to make it easier to follow. |
|
@sboulkour No guarantees, but aiming for v1.8.0 — and it looks very likely if we can agree on the API. |
|
@zhaohuabing seems like we are on the same page, and I fully agree that the drawback is that the config is a bit more cluttered. But on the other hand, it allows IMHO a more flexible usage. Two last remarks:
|
API for #4412 for discussion.
API:
geoipblock that configures client IP detection, provider selection, and allow/deny rules.Example:
geoipupdateas a sidecar writing into the shared mount..mmdbpaths from a SecurityPolicy:This keeps vendor-specific download logic out of Envoy Gateway while giving users a native way to enforce GeoIP-based policies.
Alternate approach:
Push GeoIP decisions into SecurityPolicy.authorization by matching on the headers the GeoIP filter emits. That technically works (you’d add header conditions under uthorization.rules[].principal.headers), but it’s brittle: users must remember the exact header names, every policy has to duplicate the boilerplate, and any future header renames become breaking. Embedding allow/deny rules inside the geoip block keeps the UX intuitive—configure lookup + provider + enforcement in one place—and lets the controller manage header wiring internally.